package com.tbit.uqbike.client.ordertrace;

import lombok.Builder;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 订单状态机快照
 *
 *
 * @author <a href="mailto:chen.chaoxiong@tbit.com.cn">ChenChaoXiong</a>
 * @since 2024/7/2
 */
@Data
@Builder
public class Snapshot {

    /**
     * 当前节点(处理完事件之后的新节点)
     */
    private OrderStage currentStage;

    /**
     * 上一个节点
     */
    private OrderStage previousStage;

    /**
     * 事件
     */
    private Event event;


    /**
     * 触发时间
     */
    private LocalDateTime triggerTime;

    /**
     * 请求id
     * 每次请求状态机的唯一标识，通过请求id可以区分一个状态机在多次请求之后
     * 产生的快照属于哪次请求
     */
    private String requestId;


}
